package com.lytfly.flowable.modules.flow.service;

import com.lytfly.flowable.domain.ProcessStatusEnum;
import com.lytfly.flowable.modules.flow.entity.FlowExtendProcinst;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author liuyuantao
 * @since 2021年07月15日 12时08分
 */
public interface IFlowExtendProcinstService extends IService<FlowExtendProcinst> {
    /**
     * 保存流程实例扩展信息和历史流程实例扩展信息
     * @param extendProcinst 扩展信息
     */
    void saveExtendProcinstAndHis(FlowExtendProcinst extendProcinst);

    /**
     * 通过流程实例删除运行时的扩展信息
     * @param processInstanceId 流程实例id
     */
    void deleteExtendProcinstByProcessInstanceId(String processInstanceId);
    /**
     * 通过流程实例获取运行时的扩展信息
     * @param processInstanceId 流程实例id
     * @return
     */
    FlowExtendProcinst findExtendProcinstByProcessInstanceId(String processInstanceId);

    /**
     * 修改扩展信息的状态
     * @param processStatus 状态
     * @param processInstanceId 流程实例id
     */
    void updateStatus(ProcessStatusEnum processStatus, String processInstanceId) ;
}
